package com.duoduo.递归回溯;

import com.duoduo.ListNode;

/**
 * @program: algorithm
 * @description: 删除排序链表中的重复元素83
 * 给定一个已排序的链表的头 head ， 删除所有重复的元素，使每个元素只出现一次 。返回 已排序的链表 。
 * 输入：head = [1,1,2]
 * 输出：[1,2]
 * @author: chaidl  ！
 * @create: 2022-04-07 16:25
 */
public class 删除排序链表中的重复元素83 {
    //递归
    public ListNode deleteDuplicates(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        head.next = deleteDuplicates(head.next);
        return head.val==head.next.val?head.next:head;
    }

    //循环一次
    public ListNode deleteDuplicates1(ListNode head) {
        if (head == null) {
            return head;
        }
    
        ListNode cur = head;
        while (cur.next != null) {
            if (cur.val == cur.next.val) {
                cur.next = cur.next.next;
            } else {
                cur = cur.next;
            }
        }
    
        return head;
    }
}
